package Interface;
/**
    接口当中也可以定义常量，必须使用public static final三个关键字进行修饰。
    格式：public static final 数据类型 常量名称 = 数据值;
    备注：一旦使用final关键字进行修饰，说明不可改变。
    注意事项：
    1. 接口当中的常量，可以省略public static final，注意：不写也照样是这样。
    2. 接口当中的常量，必须进行赋值；不能不赋值。
    3. 接口中常量的名称，使用完全大写的字母，用下划线进行分隔。（推荐命名规则）
 ------------------------------------------------------------------
    在任何版本的Java中，接口都能定义抽象方法。格式：
        public abstract 返回值类型 方法名称(参数列表);
    注意事项：
    1. 接口当中的抽象方法，修饰符必须是两个固定的关键字：public abstract
    2. 这两个关键字修饰符，可以选择性地省略。
 ------------------------------------------------------------------
     从Java 8开始，接口里允许定义默认方法。格式：
         public default 返回值类型 方法名称(参数列表) {...}
     备注：接口当中的默认方法，可以解决接口升级的问题。
 ------------------------------------------------------------------
     从Java 8开始，接口当中允许定义静态方法。格式：
     public static 返回值类型 方法名称(参数列表) {...}
     提示：就是将abstract或者default换成static即可，带上方法体。
 */
public interface MyInterfaceAbstract {

    /*----抽象方法-------------*/
    public static final int NUM_OF_MY_CLASS = 12; //常量,一旦赋值，不可以修改
    /*----抽象方法-------------*/
    public abstract void methodAbs1();  // 这是一个抽象方法
    abstract void methodAbs2(); // 这也是抽象方法(可省略public)
    public void methodAbs3();   // 这也是抽象方法(可省略abstract)
    void methodAbs4();          // 这也是抽象方法(俩都省略了)

    /*----默认方法-------------*/
    // 新添加了一个抽象方法,新增加一个就要改动所有的子类
//    public abstract void methodAbs5();

    // 新添加的方法，改成默认方法
    public default void methodDefault() {
        System.out.println("这是新添加的默认方法");
    }

    /*----静态方法-------------*/
    public static void methodStatic() {
        System.out.println("这是接口的静态方法！");
    }





}
